diff options
Diffstat (limited to 'src/pages/shop/product/[slug].jsx')
| -rw-r--r-- | src/pages/shop/product/[slug].jsx | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/pages/shop/product/[slug].jsx b/src/pages/shop/product/[slug].jsx new file mode 100644 index 00000000..84a3c7d4 --- /dev/null +++ b/src/pages/shop/product/[slug].jsx @@ -0,0 +1,29 @@ +import Seo from "@/core/components/Seo" +import BasicLayout from "@/core/components/layouts/BasicLayout" +import { getIdFromSlug } from "@/core/utils/slug" +import productApi from "@/lib/product/api/productApi" +import Product from "@/lib/product/components/Product" + +export async function getServerSideProps(context) { + const { slug } = context.query + let product = await productApi({ id: getIdFromSlug(slug) }) + if (product?.length == 1) { + product = product[0] + product.description = product.description.replaceAll('<p>', '||p||') + product.description = product.description.replaceAll('</p>', '||/p||') + product.description = product.description.replace(/(<([^>]+)>)/gi, ' ') + product.description = product.description.replaceAll('||p||', '<p>') + product.description = product.description.replaceAll('||/p||', '</p>') + product.description = product.description.trim() + } + return { props: { product } } +} + +export default function ProductDetail({ product }) { + return ( + <BasicLayout> + <Seo title={product?.name} /> + <Product product={product} /> + </BasicLayout> + ) +}
\ No newline at end of file |
